home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1996 June / EnigmA AMIGA RUN 08 (1996)(G.R. Edizioni)(IT)[!][issue 1996-06][EARSAN CD VII].iso / earcd / utmisc2 / xfd113.lha / xfd / Docs / xfdPatch.doc < prev    next >
Text File  |  1996-04-08  |  4KB  |  107 lines

  1. NAME
  2.     xfdPatch 1.03
  3.  
  4. SYNOPSIS
  5.     xfdPatch REMOVE/S,CHIP/S,FAST/S,DEFAULT/S,EXTERN/S,NOEXTERN/S,
  6.              FAILATERROR/S,NOFAILATERROR/S
  7.  
  8. DESCRIPTION
  9.     xfdPatch patches the dos.library/[New]LoadSeg() vectors in
  10.     order to avoid that the decrunch headers of crunched programs
  11.     are executed. This is indeed very useful as some old decrunch
  12.     headers will not work correctly with new OS versions or are
  13.     written quite badly. xfdPatch requires Kickstart v37+.
  14.  
  15.     With xfdPatch, [New]LoadSeg() will first check the loaded
  16.     segment list for decrunch headers known by xfdmaster.library.
  17.     If nothing is found, then everything works as usual. But if a
  18.     decrunch header has been recognized, the xfdDecrunchSegment()
  19.     function will be called and the decrunched segment list is
  20.     passed back as the result of [New]LoadSeg().
  21.  
  22.     On the user level, you will in most cases simply notice that
  23.     the annoying color/LED flashing of most decrunchers has been
  24.     disappeared. This shows you that xfdPatch works correctly.
  25.  
  26.     Please note that xfdPatch currently doesn't support password
  27.     or key requests and therefore simply passes on such files to
  28.     the calling program.
  29.  
  30.     If there should ever be a reason to remove xfdPatch from
  31.     memory, use the REMOVE option to do this. Please note that
  32.     xfdPatch cannot be removed if another program has changed the
  33.     dos vectors in the meantime.
  34.  
  35.     All segment decrunchers in the xfdmaster.library support
  36.     so-called relocation modes which means that you can force the
  37.     segments to be relocated to a special type of memory. With
  38.     CHIP and FAST, you can force segments to chip or fast memory,
  39.     DEFAULT causes xfdPatch to use the memory types given within
  40.     the hunks. Note that these attributes are only used while
  41.     decrunching, uncrunched files cannot be relocated somewhere
  42.     else. These options are useful with old games or intros that
  43.     need chipram but don't have the correct attributes set in the
  44.     hunk header.
  45.  
  46.     With option EXTERN/NOEXTERN, you can permit/forbid the use of
  47.     external slaves for recognition and decrunching of segments.
  48.     This will be of very rare use as there currently don't exist
  49.     any external segment decrunchers as far as I know.
  50.  
  51.     With option FAILATERROR/NOFAILATERROR, you can tell xfdPatch
  52.     how to react on decrunch errors. If fail is enabled, the
  53.     patch returns NULL which means the file is not executable.
  54.     If fail is disabled, the crunched segment list is passed to
  55.     the calling program unmodified. This option is mainly useful
  56.     for testing purposes. You can check out which crunched files
  57.     are not fully supported by xfdmaster.library. Note that these
  58.     unsupported files will mostly be hand-made modifications of
  59.     e.g. demo coders.
  60.  
  61. TECHNICAL INFO
  62.     This section is especially written for programmers of system
  63.     monitors or antivirus programs. It tells you how to detect
  64.     xfdPatch in memory.
  65.  
  66.     First of all, if xfdPatch is installed, both the NewLoadSeg()
  67.     and LoadSeg() vectors of dos.library point to the following
  68.     piece of code:
  69.  
  70.                 dc.l   "XFDP"
  71.     JumpIn      ...
  72.  
  73.     Second, there exists a port called 'xfdPatch.rendezvous'.
  74.     The fields of this port are all private, so just test if the
  75.     port exists and nothing else.
  76.  
  77. HISTORY
  78.     xfdPatch 1.03
  79.     - Arghh!! Sometimes you test a piece of code 100 times and
  80.       after releasing it, you find the bug. Whenever xfdPatch
  81.       failed to decrunch a packed file, the machine crashed.
  82.     - Added option EXTERN. The EXTERN/NOEXTERN pair now works
  83.       similar to the relmode options.
  84.     - Added options FAILATERROR/NOFAILATERROR.
  85.     - xfdPatch passes args in D2/D3 and returns result in D0
  86.       and D1 for compatibility with old overlay/linker code now.
  87.  
  88.     xfdPatch 1.02
  89.     - Added option NOEXTERN.
  90.  
  91.     xfdPatch 1.01
  92.     - Added options CHIP, FAST and DEFAULT.
  93.  
  94.     xfdPatch 1.00
  95.     - First public release. I used a very simple version of this
  96.       program for testing purposes for about one year now.
  97.       But why not giving it to the public?
  98.  
  99. COPYRIGHT
  100.     xfdPatch is freely distributable for noncommercial use.
  101.  
  102. AUTHOR
  103.     Georg Hörmann
  104.     Martinswinkelstraße 16c
  105.     82467 Garmisch-Partenkirchen
  106.     Germany
  107.